cmake_minimum_required(VERSION 3.22)

project(01_cpp11 LANGUAGES C CXX)

# C/C++ Language Standard
set(CMAKE_C_STANDARD 17)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

add_executable(move_no move_no.cpp)
add_executable(move_move move_move.cpp)
add_executable(move_rvo move_rvo.cpp)
add_executable(no_unique_ptr no_unique_ptr.cpp)
add_executable(unique_ptr_test unique_ptr_test.cpp)
add_executable(strdup strdup.cpp)
add_executable(unique_ptr_strdup unique_ptr_strdup.cpp)
add_executable(shared_ptr_test shared_ptr_test.cpp)
add_executable(weak_ptr_test weak_ptr_test.cpp)
add_executable(lambda_test lambda_test.cpp)
add_executable(auto_foreach auto_foreach.cpp)